package com.example.inet;

import java.net.InetAddress;
import java.net.UnknownHostException;

/**
 * @author readpage
 * @create 2022-10-19 9:40
 * 一、网络编程中有两个主要的问题:
 * 1.如何准确地定位网络上一台或多台主机；定位主机上的特定的应用
 * 2.找到主机后如何可靠高效地进行数据传输
 *
 * 二、网络编程中的两个要素:
 * 1.对应问题一: Ip和端口号
 * 2.对应问题二: 提供网络通信协议: TCP/IP
 *
 * 三、通信要素一: IP和端口号
 * 1. IP: 唯一得标识 Internet 上的计算机（通信实体)
 * 2. 在Java中使用InetAddress类代表Ip
 * 3. Ip分类:  IPv4 和 Ipv6;  万维网 和 局域网。192.168。 开头的是私有地址
 * 4. 域名: baidu.com
 * 5. 本地回路地址: 127.0.0.1 对应着: localhost
 * 6. 如何实例化InetAddress: 两个方法 localhost getByName(String host)、 getLocalHost()
 * 7.端口号: 端口号与IP地址的组合得出一个网络套接字: Socket
 *
 */
public class InetAddressTest {
    public static void main(String[] args) {
        try {
            InetAddress inet = InetAddress.getByName("192.168.10.14");
            System.out.println(inet);

            InetAddress inet2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inet2);

            System.out.println(InetAddress.getByName("127.0.0.1"));
            InetAddress localHost = InetAddress.getLocalHost();
            System.out.println(localHost);

            System.out.println("---------------");
            //getHostName()
            System.out.println(inet2.getHostName());
            System.out.println(inet2.getHostAddress());
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
    }
}
